package com.mikepenz.actionitembadge.library.utils;

import ohos.agp.utils.Color;

/**
 * Created by mikepenz on 02.07.15.
 */
public class BadgeStyle {
    public enum Style {
        DEFAULT(1),
        LARGE(2);

        private int style;

        Style(int style) {
            this.style = style;
        }

        public int getStyle() {
            return style;
        }
    }

    private Style style;
    private int layout;
    private int color;
    private int colorPressed;
    private int textColor = Color.WHITE.getValue();
    private int corner = -1;
    private int stroke = -1;
    private int strokeColor = Color.RED.getValue();

    /***
     * 获取Style
     * @return style
     ***/
    public Style getStyle() {
        return style;
    }

    /**
     * 设置style
     *
     * @param style
     * @return BadgeStyle
     **/
    public BadgeStyle setStyle(Style style) {
        this.style = style;
        return this;
    }

    /**
     * 获取layout
     *
     * @return layout
     **/
    public int getLayout() {
        return layout;
    }

    /**
     * 设置布局
     *
     * @param layout 布局
     * @return BadgeStyle
     **/
    public BadgeStyle setLayout(int layout) {
        this.layout = layout;
        return this;
    }

    /**
     * 获取颜色
     *
     * @return color 颜色
     **/
    public int getColor() {
        return color;
    }

    /**
     * 设置颜色
     *
     * @param color 设置的颜色
     * @return BadgeStyle
     **/
    public BadgeStyle setColor(int color) {
        this.color = color;
        return this;
    }

    /**
     * 获取按压时颜色
     *
     * @return colorPressed
     **/
    public int getColorPressed() {
        return colorPressed;
    }

    /**
     * 设置按压时颜色
     *
     * @param colorPressed 按压时的颜色
     * @return BadgeStyle
     **/
    public BadgeStyle setColorPressed(int colorPressed) {
        this.colorPressed = colorPressed;
        return this;
    }

    /**
     * 获取Text颜色
     *
     * @return textColor
     **/
    public int getTextColor() {
        return textColor;
    }

    /**
     * 设置Text颜色
     *
     * @param textColor text颜色
     * @return BadgeStyle
     **/
    public BadgeStyle setTextColor(int textColor) {
        this.textColor = textColor;
        return this;
    }

    /**
     * 获取 corner
     *
     * @return corner
     ***/
    public int getCorner() {
        return corner;
    }

    /**
     * 设置 corner
     *
     * @param corner 设置角度
     * @return BadgeStyle
     **/
    public BadgeStyle setCorner(int corner) {
        this.corner = corner;
        return this;
    }

    /**
     * 获取stroke
     *
     * @return stroke
     **/
    public int getStroke() {
        return stroke;
    }

    /***
     *
     *  设置stroke
     * @param stroke 设置stroke
     * @return BadgeStyle
     ***/
    public BadgeStyle setStroke(int stroke) {
        this.stroke = stroke;
        return this;
    }

    /**
     * 获取stroke颜色
     *
     * @return strokeColor
     **/
    public int getStrokeColor() {
        return strokeColor;
    }

    /***
     *
     * 设置stroke颜色
     * @param strokeColor  stroke颜色
     * @return BadgeStyle
     ***/
    public BadgeStyle setStrokeColor(int strokeColor) {
        this.strokeColor = strokeColor;
        return this;
    }

    /**
     * 构造方法
     *
     * @param style  属性
     * @param layout 布局
     * @param color 正常颜色
     * @param colorPressed 按压时的颜色
     **/
    public BadgeStyle(Style style, int layout, int color, int colorPressed) {
        this.style = style;
        this.layout = layout;
        this.color = color;
        this.colorPressed = colorPressed;
    }

    /**
     * 构造方法
     *
     * @param style 属性
     * @param layout 布局
     * @param color 正常颜色
     * @param colorPressed 按压时的颜色
     * @param textColor 字体颜色
     **/
    public BadgeStyle(Style style, int layout, int color, int colorPressed, int textColor) {
        this.style = style;
        this.layout = layout;
        this.color = color;
        this.colorPressed = colorPressed;
        this.textColor = textColor;
    }

    /**
     * 构造方法
     *
     * @param style 属性
     * @param layout 布局
     * @param color 正常时的颜色
     * @param colorPressed 按压时的颜色
     * @param textColor 字体颜色
     * @param corner 角度
     **/
    public BadgeStyle(Style style, int layout, int color, int colorPressed, int textColor, int corner) {
        this.style = style;
        this.layout = layout;
        this.color = color;
        this.colorPressed = colorPressed;
        this.textColor = textColor;
        this.corner = corner;
    }
}
